//
// Created by yonghu0 on 25-10-19.
//

#ifndef CONTROL_H
#define CONTROL_H

#include <jsoncpp/json/json.h>

class Control
{
public:
    Control();
    ~Control();

    Json::Value RegisterUser(Json::Value registerjson);
    Json::Value LoginUser(Json::Value loginjson);
    Json::Value SelectUserInfo(Json::Value selectjson);
    Json::Value UpdateUser(Json::Value updatejson);
    Json::Value GetUserUpdateInfo(Json::Value getjson);
    Json::Value GetUserlistInfo(Json::Value getjson);
    Json::Value DeleteUser(Json::Value deletejson);
    Json::Value RankUser(Json::Value rankjson);
    Json::Value TokenLoginUser(Json::Value loginjson);

    Json::Value SelectProblem(Json::Value queryjson);
    Json::Value SelectProblemList(Json::Value queryjson);
    Json::Value SelectProblemListByAdmin(Json::Value queryjson);
    Json::Value SelectProblemInfoByAdmin(Json::Value queryjson);
    Json::Value EditProblem(Json::Value queryjson);
    Json::Value DeleteProblem(Json::Value queryjson);
    Json::Value GetTags(Json::Value queryjson);

    Json::Value SelectAnnouncementList(Json::Value queryjson);
    Json::Value SelectAnnouncementListByAdmin(Json::Value queryjson);
    Json::Value SelectAnnouncement(Json::Value queryjson);
    Json::Value SelectAnnouncementByEdit(Json::Value queryjson);
    Json::Value InsertAnnouncement(Json::Value queryjson);
    Json::Value UpdateAnnouncement(Json::Value queryjson);
    Json::Value DeleteAnnouncement(Json::Value queryjson);

    Json::Value SelectDiscussList(Json::Value queryjson);
    Json::Value SelectDiscussListByAdmin(Json::Value queryjson);
    Json::Value SelectDiscuss(Json::Value queryjson);
    Json::Value SelectDiscussByEdit(Json::Value queryjson);
    Json::Value InsertDiscuss(Json::Value queryjson);
    Json::Value UpdateDiscuss(Json::Value queryjson);
    Json::Value DeleteDiscuss(Json::Value queryjson);

    Json::Value SelectSolutionList(Json::Value &queryjson);
    Json::Value SelectSolutionListByAdmin(Json::Value &queryjson);
    Json::Value SelectSolution(Json::Value &queryjson);
    Json::Value SelectSolutionByEdit(Json::Value &queryjson);
    Json::Value InsertSolution(Json::Value &queryjson);
    Json::Value UpdateSolution(Json::Value &queryjson);
    Json::Value DeleteSolution(Json::Value &queryjson);

    Json::Value SelectCommentListByAdmin(Json::Value &queryjson);
    Json::Value GetComment(Json::Value &queryjson);
    Json::Value InsertComment(Json::Value &queryjson);
    Json::Value DeleteComment(Json::Value &queryjson);

    Json::Value GetJudgeCode(Json::Value &queryjson);
    Json::Value SelectStatusRecordList(Json::Value &queryjson);
    Json::Value SelectStatusRecord(Json::Value &queryjson);
};


#endif //CONTROL_H
